package com.test.utils.swing;

import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.ActionListener;

public class ComponentUtils {

    public static final Border lineBorder = BorderFactory.createLineBorder(Color.gray);
    public static final Color backGroundColor = new Color(245,245,245);


    /**
     * 创建一个textPane文本域
     * @param text           默认文本内容
     * @param rectangle      坐标位置
     * @param container      主容器（主面板）
     * @param actionListener 按钮绑定事件
     * @return
     */
    public static JButton createButton(String text, Rectangle rectangle, Container container,Border border, ActionListener actionListener){
        JButton button = new JButton(text);
        button.setBounds(rectangle);
        button.setVisible(true);
        button.setLayout(null);
        if(border != null){
            button.setBorder(border);
        }else{
            button.setBorder(lineBorder);
        }
        button.setBackground(backGroundColor);

        addComponent(container,button);

        if(null != actionListener){
            button.addActionListener(actionListener);
        }
        return button;
    }

    /**
     * 创建一个textPane文本域
     * @param text          默认文本内容
     * @param rectangle     坐标位置
     * @param color         颜色
     * @param container     主容器（主面板）
     * @return
     */
    public static JTextPane createTextPane(String text, Rectangle rectangle,Color color,Container container){
        JTextPane textPane = new JTextPane();
        textPane.setBounds(rectangle);
        textPane.setForeground(color);
        textPane.setVisible(true);
        textPane.setLayout(null);
        textPane.setBorder(lineBorder);
        textPane.setBackground(backGroundColor);

        addComponent(container,textPane);

        return textPane;
    }

    /**
     * 创建一个JScrollPane滚动条
     * @param view          加入到滚动条中的控件
     * @param rectangle     坐标位置
     * @param border        边框
     * @param container     主容器（主面板）
     * @return
     */
    public static JScrollPane createScrollPane(Component view, Rectangle rectangle,Border border,Container container){
        JScrollPane jScrollPane = new JScrollPane(view,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane.setBounds(rectangle);
        jScrollPane.setBorder(border);
        addComponent(container,jScrollPane);
        return jScrollPane;
    }

    public static void addComponent(Container container,Component component){
        if(null != container){
            container.add(component);
            container.repaint();
        }
    }
}
